package nancal.mp.db.es

import nbcp.base.db.annotation.DbEntityGroup
import nbcp.base.db.annotation.DbName
import nbcp.myoql.db.es.base.IEsDocument

@DbName("credit")
@DbEntityGroup("system")
class CreditEntity : IEsDocument {
    class AppListModel {
        var appName:String? = ""
        var appType:String? = ""
        var appVersion:String? = ""
        var inTime:Int? = 0
        var obtainTime:Int? = 0
        var packageName:String? = ""
        var upTime:Int? = 0
        var versionCode:String? = ""
    }
    class RemindersModel {
        var eventId:Int? = 0
        var method:Int? = 0
        var minutes:Int? = 0
        var reminderId:Int? = 0
    }
    class CalendarInfoListModel {
        var description:String? = ""
        var endTime:Int? = 0
        var eventId:Int? = 0
        var eventTitle:String? = ""
        var reminders: List<RemindersModel>?  = listOf<RemindersModel>()
        var startTime:Int? = 0
    }
    class CallLogListModel {
        var duration:Int? = 0
        var name:String? = ""
        var phone:String? = ""
        var time:Int? = 0
        var type:Int? = 0
    }
    class CreditInfoModel {
        var isBorrowedFar:Int? = 0
        var isNetworkLoan:Int? = 0
        var isOutstanding:Int? = 0
        var isOverdueMax:Int? = 0
        var isOverdueYear:Int? = 0
    }
    class AddressInfoModel {
        var address0:String? = ""
        var adminArea:String? = ""
        var countryCode:String? = ""
        var countryName:String? = ""
        var featureName:String? = ""
        var locality:String? = ""
    }
    class BatteryStatusModel {
        var batteryLevel:Int? = 0
        var batteryMax:Int? = 0
        var batteryPct:Int? = 0
        var batteryState:Int? = 0
        var isAcCharge:Boolean? = false
        var isCharging:Boolean? = false
        var isUsbCharge:Boolean? = false
    }
    class DeviceOtherInfoModel {
        var dbm:String? = ""
        var dbmClass:String? = ""
        var keyboard:Int? = 0
        var lastBootTime:Int? = 0
        var rootJailbreak:Int? = 0
        var simulator:Int? = 0
    }
    class GeneralDataModel {
        var allowsVoip:Boolean? = false
        var andId:String? = ""
        var currentSystemTime:Int? = 0
        var elapsedRealTime:Int? = 0
        var gaid:String? = ""
        var imei:String? = ""
        var isUsbDebug:Boolean? = false
        var isUsingProxyPort:Boolean? = false
        var isUsingVpn:Boolean? = false
        var language:String? = ""
        var mac:String? = ""
        var mobileCountryCode:String? = ""
        var mobileNetworkCode:String? = ""
        var networkOperatorName:String? = ""
        var networkType:String? = ""
        var phoneNumber:String? = ""
        var phoneType:Int? = 0
        var serviceCurrentRadioAccessTechnology:String? = ""
        var uuid:String? = ""
        var wifiMac:String? = ""
    }
    class HardwareModel {
        var board:String? = ""
        var brand:String? = ""
        var cores:Int? = 0
        var deviceHeight:Int? = 0
        var deviceName:String? = ""
        var deviceWidth:Int? = 0
        var model:String? = ""
        var physicalSize:String? = ""
        var productionDate:Int? = 0
        var release:String? = ""
        var sdkVersion:String? = ""
        var serialNumber:String? = ""
    }
    class CurrentWifiModel {
        var bssid:String? = ""
        var mac:String? = ""
        var name:String? = ""
        var ssid:String? = ""
    }
    class NetworkModel {
        var configuredWifi: List<String>?  = listOf<String>()
        var currentWifi:CurrentWifiModel? = CurrentWifiModel()
        var ip:String? = ""
        var wifiCount:Int? = 0
    }
    class StorageInfoModel {
        var activeMemory:Long? = 0
        var deviceId:String? = ""
        var freeMemory:Long? = 0
        var inActiveMemory:Long? = 0
        var internalStorageTotal:Int? = 0
        var internalStorageUsable:Int? = 0
        var memoryCardFreeSize:Int? = 0
        var memoryCardSize:Int? = 0
        var memoryCardSizeUse:Int? = 0
        var memoryCardUsableSize:Int? = 0
        var purgableMemory:Long? = 0
        var ramTotalSize:Int? = 0
        var ramUsableSize:Int? = 0
        var totalMemory:Long? = 0
        var usedMemory:Long? = 0
        var wiredMemory:Long? = 0
    }
    class DeviceInfoModel {
        var addressInfo:AddressInfoModel? = AddressInfoModel()
        var allowsVOIP:Boolean? = false
        var appName:String? = ""
        var audio:String? = ""
        var audioExternal:Int? = 0
        var audioInternal:Int? = 0
        var battery:Int? = 0
        var batteryStatus:BatteryStatusModel? = BatteryStatusModel()
        var buildId:String? = ""
        var buildName:String? = ""
        var bundleId:String? = ""
        var contactGroup:Int? = 0
        var createTime:Int? = 0
        var dbmClass:String? = ""
        var developmentRegion:String? = ""
        var deviceId:String? = ""
        var deviceOtherInfo:DeviceOtherInfoModel? = DeviceOtherInfoModel()
        var downloadFiles:Int? = 0
        var generalData:GeneralDataModel? = GeneralDataModel()
        var gpsAddress:String? = ""
        var gpsAddressCity:String? = ""
        var gpsAddressProvince:String? = ""
        var gpsAddressStreet:String? = ""
        var hardware:HardwareModel? = HardwareModel()
        var idfa:String? = ""
        var idfv:String? = ""
        var imagesExternal:Int? = 0
        var imagesInternal:Int? = 0
        var imsi:String? = ""
        var lastLoginTime:Int? = 0
        var latitude:Int? = 0
        var longitude:Int? = 0
        var memory:String? = ""
        var mobileCountryCode:String? = ""
        var mobileNetworkCode:String? = ""
        var network:NetworkModel? = NetworkModel()
        var osType:String? = ""
        var osVersion:String? = ""
        var packageName:String? = ""
        var picCount:Int? = 0
        var processInfo:String? = ""
        var resolution:String? = ""
        var sdcard:String? = ""
        var serviceCurrentRadioAccessTechnology:String? = ""
        var shortVersionString:String? = ""
        var storage:String? = ""
        var storageInfo:StorageInfoModel? = StorageInfoModel()
        var unuseSdcard:String? = ""
        var unuseStorage:String? = ""
        var version:String? = ""
        var video:Int? = 0
        var videoExternal:Int? = 0
        var videoInternal:Int? = 0
        var wifi:Int? = 0
        var wifiMac:String? = ""
        var wifiName:String? = ""
    }
    class EmerContactListModel {
        var name:String? = ""
        var phone:String? = ""
        var relation:Int? = 0
    }
    class IdCardOcrInfoModel {
        var addressAll:String? = ""
        var birthday:String? = ""
        var expiryYear:String? = ""
        var fatherLastName:String? = ""
        var fullName:String? = ""
        var gender:String? = ""
        var idNumber:String? = ""
        var issueYear:String? = ""
        var motherLastName:String? = ""
        var name:String? = ""
        var voterId:String? = ""
    }
    class JobInfoModel {
        var companyName:String? = ""
        var companyPhone:String? = ""
        var industry:Int? = 0
        var jobType:Int? = 0
        var monthlyIncome:Int? = 0
        var salaryDay:Int? = 0
        var salaryDay1:Int? = 0
        var salaryType:Int? = 0
    }
    class PersonInfoModel {
        var birthday:String? = ""
        var education:Int? = 0
        var email:String? = ""
        var faceImgUrl:String? = ""
        var holdingIdCardImgUrl:String? = ""
        var idNegativeImgUrl:String? = ""
        var idPositiveImgUrl:String? = ""
        var marriage:Int? = 0
        var newCustomer:Boolean? = false
        var registerTime:Int? = 0
        var sex:Int? = 0
        var userId:Int? = 0
    }
    class RestMapModel {
        var isPlatformNew:Boolean? = false
        var system:String? = ""
    }
    class SmsListModel {
        var content:String? = ""
        var otherPhone:String? = ""
        var packageName:String? = ""
        var read:Int? = 0
        var seen:Int? = 0
        var status:Int? = 0
        var subject:String? = ""
        var time:Int? = 0
        var type:Int? = 0
    }
    class BuriedPointListModel {
        var startTime:Long? = 0
        var endTime:Long? = 0
        var time:Long? = 0
        var sceneType:Int? = 0
        var deviceNo:String? = ""
        var packageName:String? = ""
        var longitude:Double? = 0.0
        var latitude:Double? = 0.0
    }
    class contactListModel {
        var name:String? = ""
        var phone:String? = ""
        var timesContacted:Int? = 0
        var upTime:Long? = 0
        var lastTimeContacted:Long? = 0
    }

    var appList: List<AppListModel>?  = listOf<AppListModel>()
    var buriedPointList: List<BuriedPointListModel>?  = listOf<BuriedPointListModel>()
    var calendarInfoList: List<CalendarInfoListModel>?  = listOf<CalendarInfoListModel>()
    var callLogList: List<CallLogListModel>?  = listOf<CallLogListModel>()
    var callbackUrl:String? = ""
    var contactList:List<contactListModel>?  = listOf<contactListModel>()
    var creditInfo:CreditInfoModel? = CreditInfoModel()
    var deviceInfo:DeviceInfoModel? = DeviceInfoModel()
    var emerContactList: List<EmerContactListModel>?  = listOf<EmerContactListModel>()
    var formatPhotoInfoList: List<String>?  = listOf<String>()
    var idCardOcrInfo:IdCardOcrInfoModel? = IdCardOcrInfoModel()
    var idNo:String? = ""
    var jobInfo:JobInfoModel? = JobInfoModel()
    var marketFeeRateLevel:Int? = 0
    var merchantId:String? = ""
    var personInfo:PersonInfoModel? = PersonInfoModel()
    var phone:String? = ""
    var realName:String? = ""
    var restMap:RestMapModel? = RestMapModel()
    var sign:String? = ""
    var smsList: List<SmsListModel>?  = listOf<SmsListModel>()
}